package com.zhaojonhy.zhaopangwb.widget;

import android.content.Context;
import android.icu.util.Measure;
import android.util.AttributeSet;
import android.widget.GridView;

/**
 * Created by Administrator on 2016/9/8.
 */
public class WrapHeightGridView extends GridView {
    public WrapHeightGridView(Context context) {
        super(context);
    }

    public WrapHeightGridView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public WrapHeightGridView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { //宽高计算的期望值
        //高度取自适应，最大不应超过的数值
        //把整数类型的最大值右移了2位，作为size传入，另外把一个AT_MOST的常量作为mode传入，不超过前面的量
        //int的长度时32位，把前2位作为标志位标示了测量模式，如EXACTLY、AT_MOST,
        // 把后30位作为测量的具体高度或宽度。
        int heightSpec ;

        //判断
        if(getLayoutParams().height == LayoutParams.WRAP_CONTENT){
            heightSpec= MeasureSpec.makeMeasureSpec(
                    Integer.MAX_VALUE >> 2 ,MeasureSpec.AT_MOST) ;
        }else {
            heightSpec = heightMeasureSpec ;
        }
        super.onMeasure(widthMeasureSpec, heightSpec);
    }
}
